import os
ver = '0.0.0'
'''想法：
可以把输入“老的未汉化文件”删去，直接读取新的文件，用string.split("=")来分割，只需要汉化后的文件进行比对
'''

def main():
    ls = []
    try:  # 读取新旧未汉化文件
        file1 = open(input("请给出老的未汉化的文件名:"), mode="r", encoding='UTF-8')
        old_one = list(file1.readlines())
        old_one[-1] = old_one[-1]+'\n'  # 使用这个是为了防止文档底部的文字没有\n导致无法匹配
        file1.close
        file1 = open(input("请给出新的未汉化的文件名:"), mode="r", encoding='UTF-8')
        new_one = list(file1.readlines())
        new_one[-1] = new_one[-1]+'\n'
        file1.close
    except FileNotFoundError:
        print("文件不存在")
        print("请重新输入\n")
        return

    # 寻找相同的行
    for i in range(len(old_one)):
        for j in range(len(new_one)):
            if old_one[i] == new_one[j]:
                ls.append((j, i))  # 前一个是新的位置,后一个是老的位置

    try:  # 读取旧的已汉化文件
        file1 = open(input("请给出老的已汉化的文件名:"), mode="r", encoding='UTF-8')
        old_one_ch = list(file1.readlines())
        old_one_ch[-1] = old_one_ch[-1]+'\n'
        file1.close
        assert len(old_one) == len(old_one_ch)

    except FileNotFoundError:
        print("文件不存在")
        print("请重新输入\n")
        return
    except AssertionError:
        print("输入的汉化文件和未汉化文件长度不一")
        return
    print("一切无误,读取到了需要的三个文件\n接下来,创建新的汉化文件")
    with open(input("请输入新文件的名字:"), mode="w", encoding='UTF-8') as new_one_ch_file:
        new_one_ch = new_one
        for i in ls:
            new_one_ch[i[0]] = old_one_ch[i[1]]
        new_one_ch_file.writelines(new_one_ch)
    print("写入成功\n")
    print(f'''
    本程序由B站UP主"摸鱼任豚Sworld"或者"大世界小师"制作
    目前版本是{ver}
    本次工作已经完成,可以直接开始下一个工作
    ''')


if __name__ == "__main__":
    print('''
    程序使用指南:
        本程序的功能是方便的把老版本的模组汉化覆盖到新版,仅此而已,纯属个人自娱自乐的玩具
    按照提示直接输入名称即可,记得把该程序和待处理文件放在一个文件夹之下.如果要退出程序,
    请按Ctrl + C,或者直接关闭程序窗口.
    ''')
    while True:
        main()
